// 利用alarm函数定时3秒，然后在对应的SIGALRM信号处理函数signalDeal中输出一个字符串提示。
// 为了保证进程不至于在alarm规定的时间内已经退出，使用了for循环语句调用sleep函数定时4秒
// 并且在其其中依次打印当前的定时时间长度。
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>

void signalDeal(int iSig){
	if(iSig == SIGALRM){
		printf("这是定时信号的处理函数!\n");
	}
}

int main(void){
	
	int i=0;

	// 注册SIGARLM信号
	signal(SIGALRM, signalDeal);

	// 使用alarm定时3秒
	alarm(3);

	// 为了防止在alarm调用之前退出，使用sleep函数
	for(i=1; i<5; i++){
		printf("sleeping %d...\n", i);
		sleep(1);
	}

	return 0;
}
